package testcases;

import java.util.Date;

/**
 * @author  Parul Sharma
 */
public class College implements Cloneable{
	
	
	/**
	 * @uml.property  name="name"
	 */
	private String name;
	/**
	 * @uml.property  name="location"
	 */
	private String location;
	private Date reAssessDate;
	
	
	public Date startDate;
	
	private double budgetLeft;
	@juf.Annotations.Attributes(setVisible=false)
	public int id;
	@juf.Annotations.Name("No. of Dept.")
	@juf.Annotations.Attributes(setAutoscrolls=true)
	public int noOfDepartments;
	
	
	public College(String name, String location, Date reAssessDate, double budgetLeft){
		this.name = name;
		this.location = location;
		this.reAssessDate = reAssessDate;
		this.budgetLeft = budgetLeft;
	}
	
	
	/**
	 * @return
	 * @uml.property  name="name"
	 */
	public String getName(){
		return name;
	}
	
	/**
	 * @return
	 * @uml.property  name="location"
	 */
	@juf.Annotations.Attributes(setColumns=10, setForeground = "255, 0, 0")
	public String getLocation(){
		return location;
	}

	/**
	 * @param location
	 * @uml.property  name="location"
	 */
	
	public void setLocation(String location){
		this.location = location;
	}
	
	public void setReassessDate(Date reAssessDate) {
		this.reAssessDate = reAssessDate;
	}
	
	@juf.Annotations.Order(1)
	@juf.Annotations.Name("reassessmemt")
	public Date getReassessDate() {
		return reAssessDate;
	}
	
	public void setBudget(double money) {
		this.budgetLeft = money;
	}
	
	@juf.Annotations.Attributes(setEnabled=false, setSize="20, 15")
	@juf.Annotations.Name("Budget Left $")
	public double getBudget() {
		return budgetLeft;
	}
	
	public String toString(){
		return getName();
	}
	
    public Object clone() {
        try {
        	System.out.println("cloned college");
            return super.clone();
        }
        catch (CloneNotSupportedException e) {
            throw new InternalError(e.toString());
        }
    }
	
	
}
